The present invention relates to software development support in Computer Aided Software Engineering (CASE) and, more particularly, to a method and apparatus for optimizing a state transition table used in event-driven software.
This application is based on Japanese Patent Application No. 9-172151, filed Jun. 27, 1997, the content of which is incorporated by reference.
An event-driven software which parses a state transition table upon occurrence of an event and invokes a specific action in accordance with the parsing result is a kind of a variety of software programs and realized, e.g., as communication control software or the like at a radio communication terminal.
The state transition table defines a plurality of transitions corresponding to each of a plurality of states. One transition includes at least an event to be established for this transition itself, and information representing a state to which a transition is to be made next.
An event-driven software parses the state transition table as follows upon occurrence of an event. More specifically, when an event occurs in a given state, a plurality of transitions in the state transition table are sequentially loaded. When the occurred event coincides with an event defined in a given one of the transitions sequentially loaded, this given transition is determined as a transition to the next state.
In the event-driven software which parses the state transition table to invoke an action, the structure of the state transition table itself may greatly influence the execution speed of the software. In particular, as the number of transitions or events for each state increases, the execution speed of the whole system is more influenced by the arrangement order of them. A state transition table created on the basis of system specifications is not always optimum from the viewpoint of maximizing the execution speed of a program constituting this system. For this reason, the arrangement order of a plurality of transitions and events defined for each state should be optimized in the state transition table.
However, this optimization is manually performed and cumbersome. In the respective software development stages including an actual working stage, a state transition table cannot be appropriately and easily optimized.
The transition execution frequency can be measured by simulation to determine an optimal order. However, transitions in the state transition table must still be manually rearranged.